<template>
  <div class="todo-header">
    <input
      type="text"
      placeholder="请输入你的任务名称，按回车键确认"
      @keyup.enter="publicTodo"
    />
  </div>
</template>

<script lang="ts">
  import { nanoid } from "nanoid";
  import { defineComponent } from "vue";
  import { todoItemType } from "../../App";
  export default defineComponent({
    name: "Header",
  });
</script>
<script lang="ts" setup>
  const emit = defineEmits<{
    (event: "textInput", newTodo: todoItemType): void;
  }>();

  const publicTodo = (e: KeyboardEvent) => {
    const newThing = (e.target as HTMLInputElement).value;
    if (!newThing) return;
    const newTodo = {
      id: nanoid(),
      thing: newThing,
      done: false,
    };
    emit("textInput", newTodo);
    (e.target as HTMLInputElement).value = "";
  };
</script>

<style lang="scss" scoped>
  /*header*/
  .todo-header input {
    width: 560px;
    height: 28px;
    font-size: 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 4px 7px;
  }

  .todo-header input:focus {
    outline: none;
    border-color: rgba(82, 168, 236, 0.8);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
      0 0 8px rgba(82, 168, 236, 0.6);
  }
</style>
